<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>天气案例-使用computed</title>
    <script src="../js/vue.js"></script>
</head>
<body>
    <div id="root">
        今天天气很{{weather}}
        <br>
        <!--
            监视属性的两种写法
            1：在配置项里编写watch 配置
            2：在vm实例中调用$watch('监视的值',{ 
                immediate:true,//默认false 页面初始化是否改变
                handler(new, old){}
            })
s        -->
        <!-- <button @click="isHot = !isHot">点击切换</button> -->
        <button @click="changeWeather">点击切换</button>
        <button @click="window.alert('aaa')">点击弹窗</button>
    </div>
    
</body>
<script type="text/javascript">
    Vue.config.productionTip = false //以阻止 vue 在启动时生成生产提示。
    //创建Vue
    const vm = new Vue({
        el:'#root', 
        data:{
            isHot:true,
            test:'aaa',
            window
            
        },
        methods:{
            changeWeather(){
                this.isHot = !this.isHot
            }
        },
        computed:{
            weather(){
                return this.isHot ? '炎热' : '寒冷'
            }
        },
        watch:{
            isHot:{
                //mediate 调停 immediate 立即的 初始化时让handler 调用一次
                immediate:true,
                //hand 手 handler 处理器 操作者 搬运工 组织者 顾问
                //当监视的值发生改变时触发函数
                handler(newVlaue,oldValue){
                    console.log(newVlaue,oldValue);
                },
            },
            //属性也可以被监听
            isHot:{
                //mediate 调停 immediate 立即的 初始化时让handler 调用一次
                immediate:true,
                //hand 手 handler 处理器 操作者 搬运工 组织者 顾问
                //当监视的值发生改变时触发函数
                handler(newVlaue,oldValue){
                    console.log(newVlaue,oldValue);
                },
            }
        }

    })
    vm.$watch('test',{
        immediate:true,
        handler(newVlaue,oldValue){
            console.log(newVlaue,oldValue);
        }
    })

</script>
</html>